package com.shujia.wyh.day16;

/*
        添加功能
            public StringBuffer append(String str)
            public StringBuffer insert(int offset,String str)

 */
public class StringBufferDemo2 {
    public static void main(String[] args) {
        //创建StringBuffer的对象
        StringBuffer sb = new StringBuffer();
        System.out.println("sb:" + sb);

        //public StringBuffer append(String str)将指定的字符串附加到此字符序列。
        //实际上操作的是调用方法的StringBuffer对象，返回的也是同一个对象
//        StringBuffer sb2 = sb.append("hello");
//        System.out.println("sb2:" + sb2);
//        System.out.println("sb:" + sb);
//        System.out.println(sb == sb2); // true
//        System.out.println("========================================");
        sb.append("hello").append("world").append("java");
//        System.out.println("sb:" + sb);
//        System.out.println("=========================================");
//        //刚才我们观察API的时候，发现StringBuffer不仅仅可以添加String类型的数据，还可以添加
//        //boolean,double,int(byte,short),float,long,char,Object,
//        sb.append(true).append(12.34).append(10).append(12.45F).append(1223L).append('a');
//        System.out.println("sb:" + sb);
//        //注意：无论你是什么类型添加进来的，只要存进去了，都是一个一个字符最终一个字符串
//        //哪怕是true，只要添加到StringBuffer中，就是't','r','u','e'这个字符组成的字符串。
//        Demo demo = new Demo();
//        sb.append(demo); //添加的是引用数据类型类中toString()的结果
//        System.out.println("sb:" + sb);
//        String s2 = null;
//        sb.append(s2);
//        System.out.println("sb:" + sb);
        System.out.println("===============================================");
        //public StringBuffer insert(int offset,String str)将字符串插入到此字符序列中。
        //String参数的String按顺序插入到指定偏移量的该序列中，向上移动原始位于该位置的任何字符，并将该序列的长度增加到参数的长度
        //helloworldjava
        String s = null;
        sb.insert(3, "spark").insert(5,s);
        System.out.println("sb:" + sb);


    }
}

class Demo {
    private String name;

    public Demo() {
    }

    public Demo(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Demo{" +
                "name='" + name + '\'' +
                '}';
    }
}
